Synchronization servers or cloud storage services normally utilize client software on client devices to upload/download files to/from storage servers. Some client devices can communicate with multiple different synchronization or cloud storage servers. For example, some files on a client device can be synchronized with one synchronization server while other files on the client device can be synchronized with a different synchronization server. In this kind of scenario, one conventional approach is to separate the files on the client device so that the files synchronized with different servers are grouped into different folders in the file system. Files within each folder are synchronized with a single synchronization server, and the configuration of the synchronization server is stored against the root of the folder. Another conventional approach is to maintain a static list of files being synchronized and store the configuration of the synchronization servers in the list. These approaches usually lack flexibility and robustness and normally demand costly maintenance.